/* =============================================================================
 *
 *        Project:  ifx2f
 *            URL:  http://code.google.com/p/ifx2f
 *       Filename:  ifx2f/include/ifx2f.h
 *
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  28-12-2010 18:30:00
 *       Revision:  none
 *       Compiler:  g++
 *
 *         Author:  Joao Batista (jb), jmn.batista@gmail.com
 *
 * =============================================================================
 */

#ifndef IFX2F_H_
#define IFX2F_H_

/* ***** C/C++ standard libraries ******************************************* */
#include <stdlib.h>
#include <ctype.h>
#include <assert.h>
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <map>


/* ***** IBM Informix libraries ********************************************* */
#ifndef INFORMIXDIR
/* the default from IBM Informix packaging */
#define INFORMIXDIR "/opt/informix"
#endif
#include <it.h>


/* ***** C function declarations ******************************************** */

#define NaN ((1<<(8*sizeof(int)-1))-1)
enum ifxerror {
	eOK=0		/* No errors */
	,eGENERIC	/* Generic error */
};

#define IFX2F_DEBUG "IFX2F_DEBUG"


/**
 * Initialize environment
 * @param rc Variable that will hold the returning error code.
 * @return void
 * @author jb
 */
void ifxinit(
	int&	rc
	);

#endif //IFX2F_H_

/* ***** C-Fortran Interface ************************************************ */

#ifndef IFX2F_FORTRAN_INTERFACE
#define IFX2F_FORTRAN_INTERFACE
/* cfortran.h : see http://www-zeus.desy.de/~burow/cfortran */
#include <cfortran.h>

FCALLSCSUB1(ifxinit,IFXINIT,ifxinit,INT)
#endif //IFX2F_FORTRAN_INTERFACE

/* ***** ifx2f/include/ifx2f.h ends ***************************************** */
